Considerable effort has been dedicated to CAD/CAM technology and, more specifically, to curve generating technology for implementing and driving curve forming devices, including graphic devices such as plotters and cathode ray tube "CRT" devices and machine tools such as milling machines, cutting machines and other computer numerically controlled "CNC" machines. Much of this effort has been directed to providing curve generating tools which are easy for a designer to use and yet allow flexibility for designing a variety of smooth, aesthetically pleasing curves, including both two-dimensional and three-dimensional curves or contours. Additionally, it is desirable to minimize the numerical processing complexity and computer resources associated with curve generation, and to increase processing speed.
Among the more popular curve generating techniques are the Bezier curve and B-spline methodologies. Referring to FIG. 11, the Bezier curve method illustrates some of the attributes and difficulties associated with conventional computer aided curve generation. In one application of the Bezier curve technology, a designer can generate a curve 1 by positioning two pairs of points P.sub.0 and P.sub.3, and P.sub.1 and P.sub.2, on a computer screen. The first pair of points P.sub.0 and P.sub.3 defines the end points for the curve 1. The other pair of points P.sub.1 and P.sub.2 are control points for determining the shape of the curve 1 between the end points P.sub.0 and P.sub.3. Two line segments, P.sub.0, P.sub.1 and P.sub.2, P.sub.3 each connecting one of the end points P.sub.0 or P.sub.3 to one of the control points P.sub.1 or P.sub.2, are sometimes referred to as "handles". Additionally, these two pairs of points P.sub.0 and P.sub.3, and P.sub.1 and P.sub.2, can be considered as defining vertices of a polygon 2 commonly designated the "control polygon" which includes a base 3 defined by the end points P.sub.0 and P.sub.3 and sides 4, 5 and 6 defined relative to the control points P.sub.1 and P.sub.2.
According to this method, the coordinates of the vertices of the control polygon 2 are used to calculate the coefficients of a polynomial that explicitly describes the designed curve 1. The curve 1 is then derived point by point from the polynomial. As a result, the total number of points involved can be restrictively large and unevenly distributed, thereby complicating derivation.
It is a characteristic of the designed curve 1 is that it is tangent to the handles P.sub.0, P.sub.1 and P.sub.2, P.sub.3 at the end points P.sub.0 and P.sub.3. An additional characteristic of the designed curve 1 is that the curve 1 lies within the convex hull of the control polygon 2, i.e., the hull-like shape defined by the sides 4, 5 and 6 of the control polygon 2. The shape of the designed curve 1 therefore mimics, to some extent, the shape of the control polygon 2, thereby aiding the designer. Furthermore, the designed curve 1 tends to be smooth and aesthetically pleasing.
Unfortunately, such a Bezier curve cannot be directly implemented by most curve forming devices. This is because the Bezier curve is generally a higher order polynomial and most curve forming devices are capable of forming only certain geometric shapes such as line segments, corners and circular arcs of known radius and length. In this regard, the existing controllers of most curve forming devices and software libraries of most graphical tools are line and arc oriented. Specifically, most controllers use numerical control languages, for example, DXF, TIFF, EIA, HP-GL and IGES, that are based on these simple outputs.
In order to drive conventional curve forming devices, the Bezier curve is normally translated into a series of lines or simple arcs which approximate the Bezier curve. This translation can be performed by first selecting a number of points along the curve to serve as segment end points and then defining line or arc segments to connect the end points. However, this translation is a time consuming process involving complex algorithms and substantial computing resources. In particular, providing the desired transitional smoothness at the points where individual segments join can be a computationally intensive process. Additionally, because the translated curve is an approximation of the Bezier curve it can vary significantly from the originally designed curve depending, for example, on the number of segments used to create the desired curve and the process for translating the higher order polynomial curve to segment instructions to drive the curve forming device. The resulting curve therefore may not match the curve originally selected by the designer. Consequently, the designer loses some degree of control over the final design which can result, for example, in improperly fitted parts of a final product.